<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue-router基本使用</title>
    <script src="../lib/vue-2.4.0.js"></script>

    <!-- 第一步：安装 vue-router 路由模块 -->
    <!--  注意： vue-router 和 vue 的顺序  -->
    <script src="../lib/vue-router-3.0.1.js"></script>

    <style>

        /* router-link-active 这个样式是 router-link 内部生成的样式。【可在 浏览器 开发者模式下 查看元素的class属性】 */
        .router-link-active {
            color: red;
            font-weight: 800;
            font-style: italic;
            font-size: 40px;
            text-decoration: underline;
            background-color: green;
        }

        /* 自定义样式，替代 router-link 内部生成的样式:router-link-active  */
        .myactive {
            color: red;
            font-weight: 800;
            font-style: italic;
            font-size: 40px;
            text-decoration: underline;
            background-color: green;
        }

    </style>
</head>
<body>
<div id="app">

    <label> vue-router基本使用</label>
    <br>

    <label>路由切换1 </label>
    <br>
    <a href="#/login">登录</a>
    <a href="#/register">注册</a>

    <hr>

    <label>路由切换2</label>
    <br>
    <!-- router-link 默认被渲染为一个 a 标签   -->
    <!--  tag 属性：改变 router-link 被渲染为指定的 tag 元素-->
    <router-link to="/login" tag="span">登录</router-link>
    <router-link to="/register">注册</router-link>


    <hr>


    <!--  router-view 元素是由 vue-router.js 提供的元素，专门用来当做占位符，根据路由规则，匹配到对应的组件，这个 router-view就会展示对应组件的HTML结构   -->
    <router-view></router-view>
</div>
<script>

    //组件的模板对象
    var login = {
        template: '<h3>登录组件</h3>'
    }
    var register = {
        template: '<h3>注册组件</h3>'
    }

    // <!-- 第二步：创建路由规则对象   -->
    // 当导入 vue-router之后，在window全局对象中，就会有一个 路由构造函数 ，叫做：VueRouter
    var routerObj = new VueRouter({

        //路由匹配规则
        routes: [

            //每个路由规则，都是一个对象：{path: '', component: ''} 这两个必要的属性
            // path: 表示监听路由的链接地址
            // component：表示匹配到path路由时，对应的展示component组件。 component属性值必须是一个 组件的模板对象
            {path: '/login', component: login},
            {path: '/register', component: register},

            //针对默认路径下的页面显示： 指定 跳转到 login页面
            // redirect 路由重定向
            {path: '/', redirect: '/login'}
        ],
        linkActiveClass: 'myactive' // 上面 style 样式： router-link 内部生成的样式:router-link-active  被替代 为 指定的样式
    })


    let vm = new Vue({
        el: '#app',
        data: {},
        methods: {},
        router: routerObj,// 第三步：将路由规则对象，注册到 Vue实例上，用来监听 URL 地址的变化，然后展示对应的组件
    })
</script>

</body>
</html>
